<!DOCTYPE html><html class="transition bg-[var(--page-bg)] md:text-[16px] text-[14px]" data-astro-cid-sckkx6r4 data-overlayscrollbars-initialize lang=zh-CN style=--bannerOffset:15vh;--banner-height-home:65vh;--banner-height:35vh;--configHue:250;--page-width:75rem><head><title>Turnip1202 - 博客</title><meta content=3174249BFBF1AB53B6DFE6747D56F362 name=msvalidate.01><meta charset=UTF-8><meta content="Turnip1202 - 博客" name=description><meta content=Turnip1202 name=author><meta content=Turnip1202 property=og:site_name><meta content=https://turnip1202.github.io/my-blog-astro/ property=og:url><meta content="Turnip1202 - 博客" property=og:title><meta content="Turnip1202 - 博客" property=og:description><meta content=website property=og:type><meta content=summary_large_image name=twitter:card><meta content=https://turnip1202.github.io/my-blog-astro/ property=twitter:url><meta content="Turnip1202 - 博客" name=twitter:title><meta content="Turnip1202 - 博客" name=twitter:description><meta content="width=device-width" name=viewport><meta content="Astro v4.16.13" name=generator><link href=/my-blog-astro/favicon/favicon-light-32.png rel=icon media="(prefers-color-scheme: light)" sizes=32x32><link href=/my-blog-astro/favicon/favicon-light-128.png rel=icon media="(prefers-color-scheme: light)" sizes=128x128><link href=/my-blog-astro/favicon/favicon-light-180.png rel=icon media="(prefers-color-scheme: light)" sizes=180x180><link href=/my-blog-astro/favicon/favicon-light-192.png rel=icon media="(prefers-color-scheme: light)" sizes=192x192><link href=/my-blog-astro/favicon/favicon-dark-32.png rel=icon media="(prefers-color-scheme: dark)" sizes=32x32><link href=/my-blog-astro/favicon/favicon-dark-128.png rel=icon media="(prefers-color-scheme: dark)" sizes=128x128><link href=/my-blog-astro/favicon/favicon-dark-180.png rel=icon media="(prefers-color-scheme: dark)" sizes=180x180><link href=/my-blog-astro/favicon/favicon-dark-192.png rel=icon media="(prefers-color-scheme: dark)" sizes=192x192><script>!function(){switch(localStorage.getItem("theme")||"auto"){case"light":document.documentElement.classList.remove("dark");break;case"dark":document.documentElement.classList.add("dark");break;case"auto":window.matchMedia("(prefers-color-scheme: dark)").matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}const e=localStorage.getItem("hue")||250;document.documentElement.style.setProperty("--hue",e);let t=Math.floor(.3*window.innerHeight);t-=t%4,document.documentElement.style.setProperty("--banner-height-extend",`${t}px`)}()</script><link href=https://cdn.staticfile.net/KaTeX/0.16.9/katex.min.css rel=stylesheet crossorigin=anonymous integrity=sha384-n8MVd4RsNIU0tAv4ct0nTaAbDJwPJzDEaqSD1odI+WdtXRGWt2kTvGFasHpSy3SV><link href=https://turnip1202.github.io/rss.xml rel=alternate title=Turnip1202 type=application/rss+xml><link href=/my-blog-astro/_astro/hoisted.DbgSiMEJ.css rel=stylesheet><link href=/my-blog-astro/_astro/_page_.xz6yOLOz.css rel=stylesheet><link href=/my-blog-astro/_astro/_page_.CD8oIqJk.css rel=stylesheet><link href=/my-blog-astro/_astro/about.D9h-wm4h.css rel=stylesheet><style>#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex){-webkit-appearance:none;height:1.5rem;background-image:var(--color-selection-bar);transition:background-image .15s ease-in-out}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-webkit-slider-thumb{-webkit-appearance:none;height:1rem;width:.5rem;border-radius:.125rem;background:#ffffffb3;box-shadow:none}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-webkit-slider-thumb:hover{background:#fffc}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-webkit-slider-thumb:active{background:#fff9}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-moz-range-thumb{-webkit-appearance:none;height:1rem;width:.5rem;border-radius:.125rem;border-width:0;background:#ffffffb3;box-shadow:none}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-moz-range-thumb:hover{background:#fffc}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-moz-range-thumb:active{background:#fff9}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-ms-thumb{-webkit-appearance:none;height:1rem;width:.5rem;border-radius:.125rem;background:#ffffffb3;box-shadow:none}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-ms-thumb:hover{background:#fffc}#display-setting.svelte-1s19bex input[type=range]:where(.svelte-1s19bex)::-ms-thumb:active{background:#fff9}</style><script src=/my-blog-astro/_astro/hoisted.CTox-Y9A.js type=module></script><script src=/my-blog-astro/_astro/page.Bxz42dVO.js type=module></script></head><body class="transition lg:is-home min-h-screen" data-astro-cid-sckkx6r4 data-overlayscrollbars-initialize style=--bannerOffset:15vh;--banner-height-home:65vh;--banner-height:35vh;--configHue:250;--page-width:75rem><div data-hue=250 id=config-carrier></div><div class="relative mx-auto max-w-[var(--page-width)] duration-700 md:px-4 pointer-events-none px-0 transition-all z-50" id=top-row><div class="pointer-events-auto sticky top-0 transition-all" id=navbar-wrapper><div class="z-50 onload-animation" id=navbar><div class="transition absolute -top-8 bg-[var(--card-bg)] h-8 left-0 right-0"></div><div class="flex items-center justify-between !overflow-visible !rounded-t-none card-base h-[4.5rem] max-w-[var(--page-width)] mx-auto px-4"><a href=/my-blog-astro/ class="rounded-lg btn-plain scale-animation active:scale-95 font-bold px-5 h-[3.25rem]"><div class="flex items-center flex-row text-[var(--primary)] text-md"><svg class="text-[1.75rem] mb-1 mr-2" data-icon=material-symbols:home-outline-rounded height=1em viewBox="0 0 24 24" width=1em><symbol id=ai:material-symbols:home-outline-rounded><path d="M6 19h3v-5q0-.425.288-.712T10 13h4q.425 0 .713.288T15 14v5h3v-9l-6-4.5L6 10zm-2 0v-9q0-.475.213-.9t.587-.7l6-4.5q.525-.4 1.2-.4t1.2.4l6 4.5q.375.275.588.7T20 10v9q0 .825-.588 1.413T18 21h-4q-.425 0-.712-.288T13 20v-5h-2v5q0 .425-.288.713T10 21H6q-.825 0-1.412-.587T4 19m8-6.75" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:home-outline-rounded></use></svg> Turnip1202</div></a><div class="md:flex hidden"><a href=/my-blog-astro/ class="rounded-lg btn-plain scale-animation active:scale-95 font-bold px-5 h-11" aria-label=主页><div class="flex items-center">主页</div></a><a href=/my-blog-astro/archive/ class="rounded-lg btn-plain scale-animation active:scale-95 font-bold px-5 h-11" aria-label=归档><div class="flex items-center">归档</div></a><a href=/my-blog-astro/about/ class="rounded-lg btn-plain scale-animation active:scale-95 font-bold px-5 h-11" aria-label=关于><div class="flex items-center">关于</div></a><a href=https://github.com/Turnip1202/ class="rounded-lg btn-plain scale-animation active:scale-95 font-bold px-5 h-11" aria-label=GitHub target=_blank><div class="flex items-center">GitHub <svg class="transition -translate-y-[1px] dark:text-white/[0.2] ml-1 text-[0.875rem] text-black/[0.2]" data-icon=fa6-solid:arrow-up-right-from-square height=1em viewBox="0 0 512 512" width=1em><symbol id=ai:fa6-solid:arrow-up-right-from-square><path d="M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32zM80 32C35.8 32 0 67.8 0 112v320c0 44.2 35.8 80 80 80h320c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v112c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h112c17.7 0 32-14.3 32-32s-14.3-32-32-32z" fill=currentColor /></symbol><use xlink:href=#ai:fa6-solid:arrow-up-right-from-square></use></svg></div></a></div><div class=flex><style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(self.Astro||(self.Astro={})).load=async t=>{await(await t())()},window.dispatchEvent(new Event("astro:load")),(()=>{var t=Object.defineProperty,e=(e,r,n)=>((e,r,n)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n)(e,"symbol"!=typeof r?r+"":r,n);{let t={0:t=>s(t),1:t=>n(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(n(t)),5:t=>new Set(n(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},r=e=>{let[r,n]=e;return r in t?t[r](n):void 0},n=t=>t.map(r),s=t=>"object"!=typeof t||null===t?t:Object.fromEntries(Object.entries(t).map((([t,e])=>[t,r(e)])));class i extends HTMLElement{constructor(){super(...arguments),e(this,"Component"),e(this,"hydrator"),e(this,"hydrate",(async()=>{var t;if(!this.hydrator||!this.isConnected)return;let e=null==(t=this.parentElement)?void 0:t.closest("astro-island[ssr]");if(e)return void e.addEventListener("astro:hydrate",this.hydrate,{once:!0});let r,n=this.querySelectorAll("astro-slot"),i={},o=this.querySelectorAll("template[data-astro-template]");for(let t of o){let e=t.closest(this.tagName);null!=e&&e.isSameNode(this)&&(i[t.getAttribute("data-astro-template")||"default"]=t.innerHTML,t.remove())}for(let t of n){let e=t.closest(this.tagName);null!=e&&e.isSameNode(this)&&(i[t.getAttribute("name")||"default"]=t.innerHTML)}try{r=this.hasAttribute("props")?s(JSON.parse(this.getAttribute("props"))):{}}catch(t){let e=this.getAttribute("component-url")||"<unknown>",r=this.getAttribute("component-export");throw r&&(e+=` (export ${r})`),console.error(`[hydrate] Error parsing props for component ${e}`,this.getAttribute("props"),t),t}await this.hydrator(this)(this.Component,r,i,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))})),e(this,"unmount",(()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))}))}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(this.hasAttribute("await-children")&&"interactive"!==document.readyState&&"complete"!==document.readyState){let t=()=>{document.removeEventListener("DOMContentLoaded",t),e.disconnect(),this.childrenConnectedCallback()},e=new MutationObserver((()=>{var e;(null==(e=this.lastChild)?void 0:e.nodeType)===Node.COMMENT_NODE&&"astro:end"===this.lastChild.nodeValue&&(this.lastChild.remove(),t())}));e.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",t)}else this.childrenConnectedCallback()}async childrenConnectedCallback(){let t=this.getAttribute("before-hydration-url");t&&await import(t),this.start()}async start(){let t=JSON.parse(this.getAttribute("opts")),e=this.getAttribute("client");if(void 0!==Astro[e])try{await Astro[e]((async()=>{let t=this.getAttribute("renderer-url"),[e,{default:r}]=await Promise.all([import(this.getAttribute("component-url")),t?import(t):()=>()=>{}]),n=this.getAttribute("component-export")||"default";if(n.includes(".")){this.Component=e;for(let t of n.split("."))this.Component=this.Component[t]}else this.Component=e[n];return this.hydrator=r,this.hydrate}),t,this)}catch(t){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,t)}else window.addEventListener(`astro:${e}`,(()=>this.start()),{once:!0})}attributeChangedCallback(){this.hydrate()}}e(i,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",i)}})()</script><astro-island client=load component-export=default component-url=/my-blog-astro/_astro/Search.BQHYRonV.js opts={&quot;name&quot;:&quot;Search&quot;,&quot;value&quot;:true} props={} renderer-url=/my-blog-astro/_astro/client.svelte.CRbWIEGb.js ssr="" uid=Z29t6zT await-children=""><!--[--><div class="rounded-lg items-center h-11 bg-black/[0.04] dark:bg-white/5 dark:focus-within:bg-white/10 dark:hover:bg-white/10 focus-within:bg-black/[0.06] hidden hover:bg-black/[0.06] lg:flex mr-2 transition-all" id=search-bar><!--[!--><!--]--><input class="text-sm bg-transparent dark:text-white/50 focus:w-60 outline-0 pl-10 svelte-1gu5h8y text-black/50 active:w-60 h-full transition-all w-40" placeholder=搜索 value=""></div><button class="rounded-lg btn-plain scale-animation h-11 active:scale-90 w-11 lg:!hidden" aria-label="Search Panel" id=search-switch><!--[!--><!--]--></button><div class="absolute float-panel-closed float-panel right-4 left-4 md:left-[unset] md:w-[30rem] p-2 rounded-2xl search-panel shadow-2xl top-20" id=search-panel><div class="flex items-center relative bg-black/[0.04] dark:bg-white/5 dark:focus-within:bg-white/10 dark:hover:bg-white/10 focus-within:bg-black/[0.06] h-11 hover:bg-black/[0.06] lg:hidden rounded-xl transition-all" id=search-bar-inside><!--[!--><!--]--><input class="text-sm bg-transparent dark:text-white/50 focus:w-60 outline-0 pl-10 svelte-1gu5h8y text-black/50 absolute inset-0" placeholder=Search value=""></div><!--[--><!--]--></div><!--]--><!--astro:end--></astro-island><button class="rounded-lg btn-plain scale-animation h-11 active:scale-90 w-11" aria-label="Display Settings" id=display-settings-switch><svg class=text-[1.25rem] data-icon=material-symbols:palette-outline height=1em viewBox="0 0 24 24" width=1em><symbol id=ai:material-symbols:palette-outline><path d="M12 22q-2.05 0-3.875-.788t-3.187-2.15t-2.15-3.187T2 12q0-2.075.813-3.9t2.2-3.175T8.25 2.788T12.2 2q2 0 3.775.688t3.113 1.9t2.125 2.875T22 11.05q0 2.875-1.75 4.413T16 17h-1.85q-.225 0-.312.125t-.088.275q0 .3.375.863t.375 1.287q0 1.25-.687 1.85T12 22m-5.5-9q.65 0 1.075-.425T8 11.5t-.425-1.075T6.5 10t-1.075.425T5 11.5t.425 1.075T6.5 13m3-4q.65 0 1.075-.425T11 7.5t-.425-1.075T9.5 6t-1.075.425T8 7.5t.425 1.075T9.5 9m5 0q.65 0 1.075-.425T16 7.5t-.425-1.075T14.5 6t-1.075.425T13 7.5t.425 1.075T14.5 9m3 4q.65 0 1.075-.425T19 11.5t-.425-1.075T17.5 10t-1.075.425T16 11.5t.425 1.075T17.5 13M12 20q.225 0 .363-.125t.137-.325q0-.35-.375-.825T11.75 17.3q0-1.05.725-1.675T14.25 15H16q1.65 0 2.825-.962T20 11.05q0-3.025-2.312-5.038T12.2 4Q8.8 4 6.4 6.325T4 12q0 3.325 2.338 5.663T12 20" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:palette-outline></use></svg></button><astro-island client=load component-export=default component-url=/my-blog-astro/_astro/LightDarkSwitch.qmIYv0eF.js opts={&quot;name&quot;:&quot;LightDarkSwitch&quot;,&quot;value&quot;:true} props={} renderer-url=/my-blog-astro/_astro/client.svelte.CRbWIEGb.js ssr="" uid=1mJEeS await-children=""><!--[--><div class="relative z-50" role=menu tabindex=-1><button class="rounded-lg btn-plain scale-animation h-11 active:scale-90 w-11 relative" aria-label="Light/Dark Mode" id=scheme-switch role=menuitem><div class="absolute opacity-0"><!--[!--><!--]--></div><div class="absolute opacity-0"><!--[!--><!--]--></div><div class=absolute><!--[!--><!--]--></div></button><div class="transition absolute hidden lg:block -right-2 float-panel-closed pt-5 top-11" id=light-dark-panel><div class="float-panel p-2 card-base"><button class="transition font-medium whitespace-nowrap !justify-start active:scale-95 btn-plain flex h-9 items-center px-3 rounded-lg scale-animation w-full mb-0.5"><!--[!--><!--]-->亮色</button> <button class="transition font-medium whitespace-nowrap !justify-start active:scale-95 btn-plain flex h-9 items-center px-3 rounded-lg scale-animation w-full mb-0.5"><!--[!--><!--]-->暗色</button> <button class="transition font-medium whitespace-nowrap !justify-start active:scale-95 btn-plain flex h-9 items-center px-3 rounded-lg scale-animation w-full current-theme-btn"><!--[!--><!--]-->跟随系统</button></div></div></div><!--]--><!--astro:end--></astro-island><button class="rounded-lg btn-plain scale-animation h-11 active:scale-90 w-11 md:!hidden" aria-label=Menu id=nav-menu-switch name="Nav Menu"><svg class=text-[1.25rem] data-icon=material-symbols:menu-rounded height=1em viewBox="0 0 24 24" width=1em><symbol id=ai:material-symbols:menu-rounded><path d="M4 18q-.425 0-.712-.288T3 17t.288-.712T4 16h16q.425 0 .713.288T21 17t-.288.713T20 18zm0-5q-.425 0-.712-.288T3 12t.288-.712T4 11h16q.425 0 .713.288T21 12t-.288.713T20 13zm0-5q-.425 0-.712-.288T3 7t.288-.712T4 6h16q.425 0 .713.288T21 7t-.288.713T20 8z" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:menu-rounded></use></svg></button></div><div class="absolute float-panel-closed float-panel right-4 fixed px-2 py-2 transition-all" id=nav-menu-panel><a href=/my-blog-astro/ class="transition flex items-center rounded-lg active:bg-[var(--btn-plain-bg-active)] gap-8 group hover:bg-[var(--btn-plain-bg-hover)] justify-between pl-3 pr-1 py-2"><div class="transition font-bold dark:text-white/75 group-active:text-[var(--primary)] group-hover:text-[var(--primary)] text-black/75">主页</div><svg class="transition text-[var(--primary)] text-[1.25rem]" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> </a><a href=/my-blog-astro/archive/ class="transition flex items-center rounded-lg active:bg-[var(--btn-plain-bg-active)] gap-8 group hover:bg-[var(--btn-plain-bg-hover)] justify-between pl-3 pr-1 py-2"><div class="transition font-bold dark:text-white/75 group-active:text-[var(--primary)] group-hover:text-[var(--primary)] text-black/75">归档</div><svg class="transition text-[var(--primary)] text-[1.25rem]" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> </a><a href=/my-blog-astro/about/ class="transition flex items-center rounded-lg active:bg-[var(--btn-plain-bg-active)] gap-8 group hover:bg-[var(--btn-plain-bg-hover)] justify-between pl-3 pr-1 py-2"><div class="transition font-bold dark:text-white/75 group-active:text-[var(--primary)] group-hover:text-[var(--primary)] text-black/75">关于</div><svg class="transition text-[var(--primary)] text-[1.25rem]" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> </a><a href=https://github.com/Turnip1202/ class="transition flex items-center rounded-lg active:bg-[var(--btn-plain-bg-active)] gap-8 group hover:bg-[var(--btn-plain-bg-hover)] justify-between pl-3 pr-1 py-2" target=_blank><div class="transition font-bold dark:text-white/75 group-active:text-[var(--primary)] group-hover:text-[var(--primary)] text-black/75">GitHub</div><svg class="transition dark:text-white/25 -translate-x-1 text-[0.75rem] text-black/25" data-icon=fa6-solid:arrow-up-right-from-square height=1em viewBox="0 0 512 512" width=1em><use xlink:href=#ai:fa6-solid:arrow-up-right-from-square></use></svg></a></div><script>(self.Astro||(self.Astro={})).only=async t=>{await(await t())()},window.dispatchEvent(new Event("astro:only"))</script><astro-island client=only component-export=default component-url=/my-blog-astro/_astro/DisplaySettings.Bs5bUQb_.js opts={&quot;name&quot;:&quot;DisplaySettings&quot;,&quot;value&quot;:&quot;svelte&quot;} props={} renderer-url=/my-blog-astro/_astro/client.svelte.CRbWIEGb.js ssr="" uid=7xuYn></astro-island></div></div><script>!async function(){const i=await import("/my-blog-astro/pagefind/pagefind.js");await i.options({excerptLength:20}),i.init(),window.pagefind=i,i.search("")}()</script></div></div><div class="w-full absolute pointer-events-none z-30" style=top:5.5rem><div class="relative mx-auto max-w-[var(--page-width)] pointer-events-auto"><div class="transition mx-auto duration-700 gap-4 grid grid-cols-[17.5rem_auto] grid-rows-[auto_1fr_auto] left-0 lg:grid-rows-[auto] md:px-4 px-0 right-0 w-full" id=main-grid><div class="w-full onload-animation col-span-2 lg:col-span-1 lg:max-w-[17.5rem] lg:row-end-2 lg:row-start-1 mb-4 row-end-3 row-start-2" id=sidebar><div class="flex gap-4 mb-4 flex-col w-full"><div class="p-3 card-base"><a href=/my-blog-astro/about/ class="relative overflow-hidden active:scale-95 group rounded-xl block lg:max-w-none lg:mt-0 lg:mx-0 max-w-[12rem] mb-3 mt-1 mx-auto" aria-label="Go to About Page"><div class="transition flex items-center justify-center absolute group-active:bg-black/50 group-hover:bg-black/30 h-full pointer-events-none w-full z-50"><svg class="transition group-hover:scale-100 group-hover:opacity-100 opacity-0 text-5xl text-white scale-90" data-icon=fa6-regular:address-card height=1em viewBox="0 0 576 512" width=1.13em><symbol id=ai:fa6-regular:address-card><path d="M512 80c8.8 0 16 7.2 16 16v320c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16zM64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm144 224a64 64 0 1 0 0-128a64 64 0 1 0 0 128m-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80zm200-144c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24z" fill=currentColor /></symbol><use xlink:href=#ai:fa6-regular:address-card></use></svg></div><div class="relative overflow-hidden h-full lg:mt-0 lg:w-full mx-auto"><div class="transition absolute pointer-events-none bg-opacity-50 dark:bg-black/10 inset-0"></div><img alt="Profile Image of the Author" class="w-full h-full object-cover" decoding=async height=640 loading=lazy src=/my-blog-astro/_astro/demo-avatar.BfLgU9uv_Z1a985i.webp style=object-position:center width=640></div></a><div class=px-2><div class="transition font-bold dark:text-neutral-50 mb-1 text-center text-xl">Turnip1202</div><div class="transition mx-auto bg-[var(--primary)] h-1 mb-2 rounded-full w-5"></div><div class="transition text-center mb-2.5 text-neutral-400">计算机科学与技术专业、Java程序员;致力于成长为全栈开发者,热衷于Coding,乐于通过技术解决问题。</div><div class="flex justify-center gap-2 mb-1"><a href=https://discord.gg/y4D5YJx8 class="rounded-lg btn-regular active:scale-90 h-10 w-10" aria-label=Discord target=_blank rel=me><svg class=text-[1.5rem] data-icon=skill-icons:discord height=1em viewBox="0 0 256 256" width=1em><symbol id=ai:skill-icons:discord><g fill=none><rect fill=#5865F2 height=256 rx=60 width=256 /><g clip-path=url(#skillIconsDiscord0)><path d="M197.308 64.797a165 165 0 0 0-40.709-12.627a.62.62 0 0 0-.654.31c-1.758 3.126-3.706 7.206-5.069 10.412c-15.373-2.302-30.666-2.302-45.723 0c-1.364-3.278-3.382-7.286-5.148-10.412a.64.64 0 0 0-.655-.31a164.5 164.5 0 0 0-40.709 12.627a.6.6 0 0 0-.268.23c-25.928 38.736-33.03 76.52-29.546 113.836a.7.7 0 0 0 .26.468c17.106 12.563 33.677 20.19 49.94 25.245a.65.65 0 0 0 .702-.23c3.847-5.254 7.276-10.793 10.217-16.618a.633.633 0 0 0-.347-.881c-5.44-2.064-10.619-4.579-15.601-7.436a.642.642 0 0 1-.063-1.064a86 86 0 0 0 3.098-2.428a.62.62 0 0 1 .646-.088c32.732 14.944 68.167 14.944 100.512 0a.62.62 0 0 1 .655.08a80 80 0 0 0 3.106 2.436a.642.642 0 0 1-.055 1.064a102.6 102.6 0 0 1-15.609 7.428a.64.64 0 0 0-.339.889a133 133 0 0 0 10.208 16.61a.64.64 0 0 0 .702.238c16.342-5.055 32.913-12.682 50.02-25.245a.65.65 0 0 0 .26-.46c4.17-43.141-6.985-80.616-29.571-113.836a.5.5 0 0 0-.26-.238M94.834 156.142c-9.855 0-17.975-9.047-17.975-20.158s7.963-20.158 17.975-20.158c10.09 0 18.131 9.127 17.973 20.158c0 11.111-7.962 20.158-17.973 20.158m66.456 0c-9.855 0-17.974-9.047-17.974-20.158s7.962-20.158 17.974-20.158c10.09 0 18.131 9.127 17.974 20.158c0 11.111-7.884 20.158-17.974 20.158" fill=#fff /></g><defs><clipPath id=skillIconsDiscord0><path d="M28 51h200v154.93H28z" fill=#fff /></clipPath></defs></g></symbol><use xlink:href=#ai:skill-icons:discord></use></svg> </a><a href=https://b23.tv/zpySzz9 class="rounded-lg btn-regular active:scale-90 h-10 w-10" aria-label=哔哩哔哩 target=_blank rel=me><svg class=text-[1.5rem] data-icon=ant-design:bilibili-filled height=1em viewBox="0 0 1024 1024" width=1em><symbol id=ai:ant-design:bilibili-filled><g fill=currentColor fill-rule=evenodd><path d="M310.134 596.45c-7.999-4.463-16.498-8.43-24.997-11.9a274 274 0 0 0-26.996-7.438c-2.5-.992-2.5.991-2.5 1.487c0 7.934.5 18.843 1.5 27.768c1 7.438 2 15.372 4 22.81c0 .496 0 .991.5 1.487c.999.992 1.999 1.488 2.999.496c7.999-4.463 15.998-8.43 22.997-13.388c7.499-5.454 15.498-11.9 21.997-18.347c1.5-1.487 0-2.479.5-2.975m323.96-11.9a274 274 0 0 0-26.997-7.438c-2.5-.992-2.5.991-2.5 1.487c0 7.934.5 18.843 1.5 27.768c1 7.438 2 15.372 4 22.81c0 .496 0 .991.5 1.487c1 .992 2 1.488 3 .496c7.999-4.463 15.998-8.43 22.997-13.388c7.499-5.454 15.498-11.9 21.997-18.347c2-1.487.5-2.479.5-2.975c-7.5-4.463-16.498-8.43-24.997-11.9"/><path d="M741.496 112H283c-94.501 0-171 76.5-171 171.5v458c.5 94 77 170.5 170.999 170.5h457.997c94.5 0 171.002-76.5 171.002-170.5v-458c.497-95-76.002-171.5-170.502-171.5m95 343.5h15.5v48h-15.5zm-95.5-1.5l2 43l-13.5 1.5l-5-44.5zm-23.5 0l4 45.5l-14.5 1.5l-6.5-47.5h17zm-230.498 1.5h15v48h-15zm-96-1.5l2 43l-13.5 1.5l-5-44.5zm-23.5 0l4 45.5l-14.5 2l-6-47.5zm-3.5 149C343.498 668.5 216 662.5 204.5 660.5C195.5 499 181.5 464 170 385l54.5-22.5c1 71.5 9 185 9 185s108.5-15.5 132 47c.5 3 0 6-1.5 8.5m20.5 35.5l-23.5-124h35.5l13 123zm44.5-8l-27-235l33.5-1.5l21 236H429zm34-175h17.5v48H467zm41 190h-26.5l-9.5-126h36zm209.998-43C693.496 668 565.997 662 554.497 660c-9-161-23-196-34.5-275l54.5-22.5c1 71.5 9 185 9 185s108.5-15.5 132 46.5c.5 3 0 6-1.5 8.5m19.5 36l-23-124h35.5l13 123zm45.5-8l-27.5-235l33.5-1.5l21 236h-27zm33.5-175h17.5v48h-13zm41 190h-26.5l-9.5-126h36z"/></g></symbol><use xlink:href=#ai:ant-design:bilibili-filled></use></svg> </a><a href=https://github.com/Turnip1202 class="rounded-lg btn-regular active:scale-90 h-10 w-10" aria-label=GitHub target=_blank rel=me><svg class=text-[1.5rem] data-icon=fa6-brands:github height=1em viewBox="0 0 496 512" width=0.97em><symbol id=ai:fa6-brands:github><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2" fill=currentColor /></symbol><use xlink:href=#ai:fa6-brands:github></use></svg></a></div></div></div></div><div class="flex gap-4 flex-col top-4 top-4 duration-700 sticky transition-all w-full" id=sidebar-sticky><widget-layout class="pb-4 card-base onload-animation" data-astro-cid-ucso7hve data-id=categories data-is-collapsed=true style=animation-delay:150ms;--collapsedHeight:7.5rem><div class="transition font-bold before:absolute before:bg-[var(--primary)] before:rounded-md before:w-1 before:h-4 before:left-[-16px] before:top-[5.5px] dark:text-neutral-100 mb-2 ml-8 mt-4 relative text-lg text-neutral-900" style=--collapsedHeight:7.5rem data-astro-cid-ucso7hve>分类</div><div class="px-4 collapse-wrapper overflow-hidden collapsed" style=--collapsedHeight:7.5rem data-astro-cid-ucso7hve id=categories><a href=/my-blog-astro/archive/category/Guides/ aria-label="View all posts in the Guides category"><button class="rounded-lg active:bg-[var(--btn-plain-bg-active)] hover:bg-[var(--btn-plain-bg-hover)] bg-none dark:hover:text-[var(--primary)] dark:text-neutral-300 h-10 hover:pl-3 hover:text-[var(--primary)] pl-2 text-neutral-700 transition-all w-full"><div class="flex items-center justify-between mr-2 relative"><div class="overflow-ellipsis overflow-hidden text-left whitespace-nowrap">Guides</div><div class="transition text-sm flex bg-[oklch(0.95_0.025_var(--hue))] dark:bg-[var(--primary)] dark:text-[var(--deep-text)] font-bold h-7 items-center justify-center min-w-[2rem] ml-4 rounded-lg text-[var(--btn-content)]">1</div></div></button> </a><a href=/my-blog-astro/archive/category/mybatis/ aria-label="View all posts in the mybatis category"><button class="rounded-lg active:bg-[var(--btn-plain-bg-active)] hover:bg-[var(--btn-plain-bg-hover)] bg-none dark:hover:text-[var(--primary)] dark:text-neutral-300 h-10 hover:pl-3 hover:text-[var(--primary)] pl-2 text-neutral-700 transition-all w-full"><div class="flex items-center justify-between mr-2 relative"><div class="overflow-ellipsis overflow-hidden text-left whitespace-nowrap">mybatis</div><div class="transition text-sm flex bg-[oklch(0.95_0.025_var(--hue))] dark:bg-[var(--primary)] dark:text-[var(--deep-text)] font-bold h-7 items-center justify-center min-w-[2rem] ml-4 rounded-lg text-[var(--btn-content)]">2</div></div></button> </a><a href=/my-blog-astro/archive/category/SQL练习题/ aria-label="View all posts in the SQL练习题 category"><button class="rounded-lg active:bg-[var(--btn-plain-bg-active)] hover:bg-[var(--btn-plain-bg-hover)] bg-none dark:hover:text-[var(--primary)] dark:text-neutral-300 h-10 hover:pl-3 hover:text-[var(--primary)] pl-2 text-neutral-700 transition-all w-full"><div class="flex items-center justify-between mr-2 relative"><div class="overflow-ellipsis overflow-hidden text-left whitespace-nowrap">SQL练习题</div><div class="transition text-sm flex bg-[oklch(0.95_0.025_var(--hue))] dark:bg-[var(--primary)] dark:text-[var(--deep-text)] font-bold h-7 items-center justify-center min-w-[2rem] ml-4 rounded-lg text-[var(--btn-content)]">1</div></div></button> </a><a href=/my-blog-astro/archive/category/大模型/ aria-label="View all posts in the 大模型 category"><button class="rounded-lg active:bg-[var(--btn-plain-bg-active)] hover:bg-[var(--btn-plain-bg-hover)] bg-none dark:hover:text-[var(--primary)] dark:text-neutral-300 h-10 hover:pl-3 hover:text-[var(--primary)] pl-2 text-neutral-700 transition-all w-full"><div class="flex items-center justify-between mr-2 relative"><div class="overflow-ellipsis overflow-hidden text-left whitespace-nowrap">大模型</div><div class="transition text-sm flex bg-[oklch(0.95_0.025_var(--hue))] dark:bg-[var(--primary)] dark:text-[var(--deep-text)] font-bold h-7 items-center justify-center min-w-[2rem] ml-4 rounded-lg text-[var(--btn-content)]">1</div></div></button> </a><a href=/my-blog-astro/archive/category/项目部署/ aria-label="View all posts in the 项目部署 category"><button class="rounded-lg active:bg-[var(--btn-plain-bg-active)] hover:bg-[var(--btn-plain-bg-hover)] bg-none dark:hover:text-[var(--primary)] dark:text-neutral-300 h-10 hover:pl-3 hover:text-[var(--primary)] pl-2 text-neutral-700 transition-all w-full"><div class="flex items-center justify-between mr-2 relative"><div class="overflow-ellipsis overflow-hidden text-left whitespace-nowrap">项目部署</div><div class="transition text-sm flex bg-[oklch(0.95_0.025_var(--hue))] dark:bg-[var(--primary)] dark:text-[var(--deep-text)] font-bold h-7 items-center justify-center min-w-[2rem] ml-4 rounded-lg text-[var(--btn-content)]">1</div></div></button></a></div><div class="px-4 -mb-2 expand-btn" style=--collapsedHeight:7.5rem data-astro-cid-ucso7hve><button class="rounded-lg btn-plain h-9 w-full" data-astro-cid-ucso7hve style=--collapsedHeight:7.5rem><div class="flex items-center justify-center -translate-x-2 gap-2 text-[var(--primary)]" style=--collapsedHeight:7.5rem data-astro-cid-ucso7hve><svg class=text-[1.75rem] data-icon=material-symbols:more-horiz height=1em viewBox="0 0 24 24" width=1em data-astro-cid-ucso7hve><symbol id=ai:material-symbols:more-horiz><path d="M6 14q-.825 0-1.412-.587T4 12t.588-1.412T6 10t1.413.588T8 12t-.587 1.413T6 14m6 0q-.825 0-1.412-.587T10 12t.588-1.412T12 10t1.413.588T14 12t-.587 1.413T12 14m6 0q-.825 0-1.412-.587T16 12t.588-1.412T18 10t1.413.588T20 12t-.587 1.413T18 14" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:more-horiz></use></svg> 更多</div></button></div></widget-layout><widget-layout class="pb-4 card-base onload-animation" data-astro-cid-ucso7hve data-id=tags data-is-collapsed=false style=animation-delay:.2s;--collapsedHeight:7.5rem><div class="transition font-bold before:absolute before:bg-[var(--primary)] before:rounded-md before:w-1 before:h-4 before:left-[-16px] before:top-[5.5px] dark:text-neutral-100 mb-2 ml-8 mt-4 relative text-lg text-neutral-900" style=--collapsedHeight:7.5rem data-astro-cid-ucso7hve>标签</div><div class="px-4 collapse-wrapper overflow-hidden" style=--collapsedHeight:7.5rem data-astro-cid-ucso7hve id=tags><div class="flex gap-2 flex-wrap"><a href=/my-blog-astro/archive/tag/Blogging/ class="text-sm rounded-lg btn-regular h-8 px-3" aria-label="View all posts with the Blogging tag">Blogging </a><a href=/my-blog-astro/archive/tag/Customization/ class="text-sm rounded-lg btn-regular h-8 px-3" aria-label="View all posts with the Customization tag">Customization </a><a href=/my-blog-astro/archive/tag/Markdown/ class="text-sm rounded-lg btn-regular h-8 px-3" aria-label="View all posts with the Markdown tag">Markdown </a><a href=/my-blog-astro/archive/tag/mybatis/ class="text-sm rounded-lg btn-regular h-8 px-3" aria-label="View all posts with the mybatis tag">mybatis </a><a href=/my-blog-astro/archive/tag/SQL练习题/ class="text-sm rounded-lg btn-regular h-8 px-3" aria-label="View all posts with the SQL练习题 tag">SQL练习题 </a><a href=/my-blog-astro/archive/tag/大模型/ class="text-sm rounded-lg btn-regular h-8 px-3" aria-label="View all posts with the 大模型 tag">大模型 </a><a href=/my-blog-astro/archive/tag/项目部署/ class="text-sm rounded-lg btn-regular h-8 px-3" aria-label="View all posts with the 项目部署 tag">项目部署</a></div></div></widget-layout></div></div><main class="col-span-2 lg:col-span-1 overflow-hidden transition-swup-fade" id=swup-container><div class=onload-animation id=content-wrapper><div class="transition flex flex-col bg-[var(--card-bg)] mb-4 md:bg-transparent md:gap-4 md:py-0 py-1 rounded-[var(--radius-large)]"><div class="flex w-full card-base flex-col-reverse md:flex-col onload-animation overflow-hidden relative rounded-[var(--radius-large)]" style="animation-delay:calc(var(--content-delay) + 0ms);--coverWidth:28%" data-astro-cid-iyiqi2so><div class="w-full relative md:pl-9 md:pr-2 md:pt-7 pb-6 pl-6 pr-6 pt-6 md:w-[calc(100%_-_52px_-_12px)]" style=--coverWidth:28% data-astro-cid-iyiqi2so><a href=/my-blog-astro/posts/tutorials/laravel-1/ class="transition font-bold before:absolute before:bg-[var(--primary)] before:rounded-md before:w-1 active:text-[var(--title-active)] before:h-5 before:hidden before:left-[18px] before:top-[35px] block dark:active:text-[var(--title-active)] dark:hover:text-[var(--primary)] group hover:text-[var(--primary)] mb-3 md:before:block text-3xl text-90 w-full" data-astro-cid-iyiqi2so style=--coverWidth:28%>Nginx与Laravel协同-构建高效Web服务 <svg class="absolute text-[2rem] text-[var(--primary)] translate-y-0.5 inline md:hidden" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> <svg class="transition text-[var(--primary)] -translate-x-1 absolute group-hover:opacity-100 group-hover:translate-x-0 hidden md:inline opacity-0 text-[2rem] translate-y-0.5" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a><div class="flex items-center dark:text-neutral-400 flex-wrap gap-4 gap-x-4 gap-y-2 mb-4 text-neutral-500"><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:calendar-today-outline-rounded height=1em viewBox="0 0 24 24" width=1em><symbol id=ai:material-symbols:calendar-today-outline-rounded><path d="M5 22q-.825 0-1.412-.587T3 20V6q0-.825.588-1.412T5 4h1V3q0-.425.288-.712T7 2t.713.288T8 3v1h8V3q0-.425.288-.712T17 2t.713.288T18 3v1h1q.825 0 1.413.588T21 6v14q0 .825-.587 1.413T19 22zm0-2h14V10H5zM5 8h14V6H5zm0 0V6z" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:calendar-today-outline-rounded></use></svg></div><span class="text-sm text-50 font-medium">2025-02-05</span></div><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:book-2-outline-rounded height=1em viewBox="0 0 24 24" width=1em><symbol id=ai:material-symbols:book-2-outline-rounded><path d="M6 15.325q.35-.175.725-.25T7.5 15H8V4h-.5q-.625 0-1.062.438T6 5.5zM10 15h8V4h-8zm-4 .325V4zM7.5 22q-1.45 0-2.475-1.025T4 18.5v-13q0-1.45 1.025-2.475T7.5 2H18q.825 0 1.413.587T20 4v12.525q0 .2-.162.363t-.588.362q-.35.175-.55.5t-.2.75t.2.763t.55.487t.55.413t.2.562v.25q0 .425-.288.725T19 22zm0-2h9.325q-.15-.35-.237-.712T16.5 18.5q0-.4.075-.775t.25-.725H7.5q-.65 0-1.075.438T6 18.5q0 .65.425 1.075T7.5 20" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:book-2-outline-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><a href=/my-blog-astro/archive/category/mybatis/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts in the mybatis category">mybatis</a></div></div><div class="md:flex hidden items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:tag-rounded height=1em viewBox="0 0 24 24" width=1em><symbol id=ai:material-symbols:tag-rounded><path d="m9 16l-.825 3.275q-.075.325-.325.525t-.6.2q-.475 0-.775-.375T6.3 18.8L7 16H4.275q-.5 0-.8-.387T3.3 14.75q.075-.35.35-.55t.625-.2H7.5l1-4H5.775q-.5 0-.8-.387T4.8 8.75q.075-.35.35-.55t.625-.2H9l.825-3.275Q9.9 4.4 10.15 4.2t.6-.2q.475 0 .775.375t.175.825L11 8h4l.825-3.275q.075-.325.325-.525t.6-.2q.475 0 .775.375t.175.825L17 8h2.725q.5 0 .8.387t.175.863q-.075.35-.35.55t-.625.2H16.5l-1 4h2.725q.5 0 .8.388t.175.862q-.075.35-.35.55t-.625.2H15l-.825 3.275q-.075.325-.325.525t-.6.2q-.475 0-.775-.375T12.3 18.8L13 16zm.5-2h4l1-4h-4z" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:tag-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><div class="text-sm mx-1.5 text-[var(--meta-divider)] hidden">/</div><a href=/my-blog-astro/archive/tag/Markdown/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Markdown tag">Markdown</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/Blogging/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Blogging tag">Blogging</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/mybatis/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the mybatis tag">mybatis</a></div></div></div><div class="transition mb-3.5 pr-4 text-75" style=--coverWidth:28% data-astro-cid-iyiqi2so>Nginx与Laravel协同：构建高效Web服务</div><div class="transition text-sm flex dark:text-white/30 gap-4 text-black/30" style=--coverWidth:28% data-astro-cid-iyiqi2so><div style=--coverWidth:28% data-astro-cid-iyiqi2so>603 字</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>|</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>3 分钟</div></div></div><a href=/my-blog-astro/posts/tutorials/laravel-1/ class="absolute rounded-xl !hidden active:bg-[var(--enter-btn-bg-active)] active:scale-95 bg-[var(--enter-btn-bg)] bottom-3 btn-regular hover:bg-[var(--enter-btn-bg-hover)] md:!flex right-3 top-3 w-[3.25rem]" aria-label=Nginx与Laravel协同-构建高效Web服务 data-astro-cid-iyiqi2so style=--coverWidth:28%><svg class="transition text-[var(--primary)] mx-auto text-4xl" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a></div><div class="transition border-dashed border-black/10 border-t-[1px] dark:border-white/[0.15] last:border-t-0 md:hidden mx-6" style=--coverWidth:28% data-astro-cid-iyiqi2so></div><div class="flex w-full card-base flex-col-reverse md:flex-col onload-animation overflow-hidden relative rounded-[var(--radius-large)]" style="animation-delay:calc(var(--content-delay) + 50ms);--coverWidth:28%" data-astro-cid-iyiqi2so><div class="w-full relative md:pl-9 md:pr-2 md:pt-7 pb-6 pl-6 pr-6 pt-6 md:w-[calc(100%_-_52px_-_12px)]" style=--coverWidth:28% data-astro-cid-iyiqi2so><a href=/my-blog-astro/posts/study/mybatis-cache/ class="transition font-bold before:absolute before:bg-[var(--primary)] before:rounded-md before:w-1 active:text-[var(--title-active)] before:h-5 before:hidden before:left-[18px] before:top-[35px] block dark:active:text-[var(--title-active)] dark:hover:text-[var(--primary)] group hover:text-[var(--primary)] mb-3 md:before:block text-3xl text-90 w-full" data-astro-cid-iyiqi2so style=--coverWidth:28%>深入理解 MyBatis 一、二级缓存：提升数据库访问性能的利器 <svg class="absolute text-[2rem] text-[var(--primary)] translate-y-0.5 inline md:hidden" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> <svg class="transition text-[var(--primary)] -translate-x-1 absolute group-hover:opacity-100 group-hover:translate-x-0 hidden md:inline opacity-0 text-[2rem] translate-y-0.5" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a><div class="flex items-center dark:text-neutral-400 flex-wrap gap-4 gap-x-4 gap-y-2 mb-4 text-neutral-500"><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:calendar-today-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:calendar-today-outline-rounded></use></svg></div><span class="text-sm text-50 font-medium">2025-02-04</span></div><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:book-2-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:book-2-outline-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><a href=/my-blog-astro/archive/category/mybatis/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts in the mybatis category">mybatis</a></div></div><div class="md:flex hidden items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:tag-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:tag-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><div class="text-sm mx-1.5 text-[var(--meta-divider)] hidden">/</div><a href=/my-blog-astro/archive/tag/Markdown/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Markdown tag">Markdown</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/Blogging/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Blogging tag">Blogging</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/mybatis/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the mybatis tag">mybatis</a></div></div></div><div class="transition mb-3.5 pr-4 text-75" style=--coverWidth:28% data-astro-cid-iyiqi2so>详细解析-mybatis-缓存</div><div class="transition text-sm flex dark:text-white/30 gap-4 text-black/30" style=--coverWidth:28% data-astro-cid-iyiqi2so><div style=--coverWidth:28% data-astro-cid-iyiqi2so>1492 字</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>|</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>7 分钟</div></div></div><a href=/my-blog-astro/posts/study/mybatis-cache/ class="absolute rounded-xl !hidden active:bg-[var(--enter-btn-bg-active)] active:scale-95 bg-[var(--enter-btn-bg)] bottom-3 btn-regular hover:bg-[var(--enter-btn-bg-hover)] md:!flex right-3 top-3 w-[3.25rem]" aria-label="深入理解 MyBatis 一、二级缓存：提升数据库访问性能的利器" data-astro-cid-iyiqi2so style=--coverWidth:28%><svg class="transition text-[var(--primary)] mx-auto text-4xl" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a></div><div class="transition border-dashed border-black/10 border-t-[1px] dark:border-white/[0.15] last:border-t-0 md:hidden mx-6" style=--coverWidth:28% data-astro-cid-iyiqi2so></div><div class="flex w-full card-base flex-col-reverse md:flex-col onload-animation overflow-hidden relative rounded-[var(--radius-large)]" style="animation-delay:calc(var(--content-delay) + 100ms);--coverWidth:28%" data-astro-cid-iyiqi2so><div class="w-full relative md:pl-9 md:pr-2 md:pt-7 pb-6 pl-6 pr-6 pt-6 md:w-[calc(100%_-_52px_-_12px)]" style=--coverWidth:28% data-astro-cid-iyiqi2so><a href=/my-blog-astro/posts/tutorials/jenkins/ class="transition font-bold before:absolute before:bg-[var(--primary)] before:rounded-md before:w-1 active:text-[var(--title-active)] before:h-5 before:hidden before:left-[18px] before:top-[35px] block dark:active:text-[var(--title-active)] dark:hover:text-[var(--primary)] group hover:text-[var(--primary)] mb-3 md:before:block text-3xl text-90 w-full" data-astro-cid-iyiqi2so style=--coverWidth:28%>Jenkins 安装与使用 <svg class="absolute text-[2rem] text-[var(--primary)] translate-y-0.5 inline md:hidden" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> <svg class="transition text-[var(--primary)] -translate-x-1 absolute group-hover:opacity-100 group-hover:translate-x-0 hidden md:inline opacity-0 text-[2rem] translate-y-0.5" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a><div class="flex items-center dark:text-neutral-400 flex-wrap gap-4 gap-x-4 gap-y-2 mb-4 text-neutral-500"><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:calendar-today-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:calendar-today-outline-rounded></use></svg></div><span class="text-sm text-50 font-medium">2025-02-02</span></div><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:book-2-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:book-2-outline-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><a href=/my-blog-astro/archive/category/项目部署/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts in the 项目部署 category">项目部署</a></div></div><div class="md:flex hidden items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:tag-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:tag-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><div class="text-sm mx-1.5 text-[var(--meta-divider)] hidden">/</div><a href=/my-blog-astro/archive/tag/Markdown/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Markdown tag">Markdown</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/Blogging/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Blogging tag">Blogging</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/项目部署/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the 项目部署 tag">项目部署</a></div></div></div><div class="transition mb-3.5 pr-4 text-75" style=--coverWidth:28% data-astro-cid-iyiqi2so>Jenkins快速入门。</div><div class="transition text-sm flex dark:text-white/30 gap-4 text-black/30" style=--coverWidth:28% data-astro-cid-iyiqi2so><div style=--coverWidth:28% data-astro-cid-iyiqi2so>38 字</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>|</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>1 分钟</div></div></div><a href=/my-blog-astro/posts/tutorials/jenkins/ class="absolute rounded-xl !hidden active:bg-[var(--enter-btn-bg-active)] active:scale-95 bg-[var(--enter-btn-bg)] bottom-3 btn-regular hover:bg-[var(--enter-btn-bg-hover)] md:!flex right-3 top-3 w-[3.25rem]" aria-label="Jenkins 安装与使用" data-astro-cid-iyiqi2so style=--coverWidth:28%><svg class="transition text-[var(--primary)] mx-auto text-4xl" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a></div><div class="transition border-dashed border-black/10 border-t-[1px] dark:border-white/[0.15] last:border-t-0 md:hidden mx-6" style=--coverWidth:28% data-astro-cid-iyiqi2so></div><div class="flex w-full card-base flex-col-reverse md:flex-col onload-animation overflow-hidden relative rounded-[var(--radius-large)]" style="animation-delay:calc(var(--content-delay) + 150ms);--coverWidth:28%" data-astro-cid-iyiqi2so><div class="w-full relative md:pl-9 md:pr-2 md:pt-7 pb-6 pl-6 pr-6 pt-6 md:w-[calc(100%_-_52px_-_12px)]" style=--coverWidth:28% data-astro-cid-iyiqi2so><a href=/my-blog-astro/posts/tutorials/ai-demo1/ class="transition font-bold before:absolute before:bg-[var(--primary)] before:rounded-md before:w-1 active:text-[var(--title-active)] before:h-5 before:hidden before:left-[18px] before:top-[35px] block dark:active:text-[var(--title-active)] dark:hover:text-[var(--primary)] group hover:text-[var(--primary)] mb-3 md:before:block text-3xl text-90 w-full" data-astro-cid-iyiqi2so style=--coverWidth:28%>大模型部署教程 <svg class="absolute text-[2rem] text-[var(--primary)] translate-y-0.5 inline md:hidden" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> <svg class="transition text-[var(--primary)] -translate-x-1 absolute group-hover:opacity-100 group-hover:translate-x-0 hidden md:inline opacity-0 text-[2rem] translate-y-0.5" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a><div class="flex items-center dark:text-neutral-400 flex-wrap gap-4 gap-x-4 gap-y-2 mb-4 text-neutral-500"><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:calendar-today-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:calendar-today-outline-rounded></use></svg></div><span class="text-sm text-50 font-medium">2025-01-30</span></div><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:book-2-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:book-2-outline-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><a href=/my-blog-astro/archive/category/大模型/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts in the 大模型 category">大模型</a></div></div><div class="md:flex hidden items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:tag-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:tag-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><div class="text-sm mx-1.5 text-[var(--meta-divider)] hidden">/</div><a href=/my-blog-astro/archive/tag/Markdown/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Markdown tag">Markdown</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/Blogging/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Blogging tag">Blogging</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/大模型/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the 大模型 tag">大模型</a></div></div></div><div class="transition mb-3.5 pr-4 text-75" style=--coverWidth:28% data-astro-cid-iyiqi2so>通过ollama框架进行大模型的本地部署。</div><div class="transition text-sm flex dark:text-white/30 gap-4 text-black/30" style=--coverWidth:28% data-astro-cid-iyiqi2so><div style=--coverWidth:28% data-astro-cid-iyiqi2so>441 字</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>|</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>2 分钟</div></div></div><a href=/my-blog-astro/posts/tutorials/ai-demo1/ class="absolute rounded-xl !hidden active:bg-[var(--enter-btn-bg-active)] active:scale-95 bg-[var(--enter-btn-bg)] bottom-3 btn-regular hover:bg-[var(--enter-btn-bg-hover)] md:!flex right-3 top-3 w-[3.25rem]" aria-label=大模型部署教程 data-astro-cid-iyiqi2so style=--coverWidth:28%><svg class="transition text-[var(--primary)] mx-auto text-4xl" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a></div><div class="transition border-dashed border-black/10 border-t-[1px] dark:border-white/[0.15] last:border-t-0 md:hidden mx-6" style=--coverWidth:28% data-astro-cid-iyiqi2so></div><div class="flex w-full card-base flex-col-reverse md:flex-col onload-animation overflow-hidden relative rounded-[var(--radius-large)]" style="animation-delay:calc(var(--content-delay) + 200ms);--coverWidth:28%" data-astro-cid-iyiqi2so><div class="w-full relative md:pl-9 md:pr-2 md:pt-7 pb-6 pl-6 pr-6 pt-6 md:w-[calc(100%_-_52px_-_12px)]" style=--coverWidth:28% data-astro-cid-iyiqi2so><a href=/my-blog-astro/posts/study/sql-demo1/ class="transition font-bold before:absolute before:bg-[var(--primary)] before:rounded-md before:w-1 active:text-[var(--title-active)] before:h-5 before:hidden before:left-[18px] before:top-[35px] block dark:active:text-[var(--title-active)] dark:hover:text-[var(--primary)] group hover:text-[var(--primary)] mb-3 md:before:block text-3xl text-90 w-full" data-astro-cid-iyiqi2so style=--coverWidth:28%>复杂SQL练习 <svg class="absolute text-[2rem] text-[var(--primary)] translate-y-0.5 inline md:hidden" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> <svg class="transition text-[var(--primary)] -translate-x-1 absolute group-hover:opacity-100 group-hover:translate-x-0 hidden md:inline opacity-0 text-[2rem] translate-y-0.5" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a><div class="flex items-center dark:text-neutral-400 flex-wrap gap-4 gap-x-4 gap-y-2 mb-4 text-neutral-500"><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:calendar-today-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:calendar-today-outline-rounded></use></svg></div><span class="text-sm text-50 font-medium">2025-01-30</span></div><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:book-2-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:book-2-outline-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><a href=/my-blog-astro/archive/category/SQL练习题/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts in the SQL练习题 category">SQL练习题</a></div></div><div class="md:flex hidden items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:tag-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:tag-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><div class="text-sm mx-1.5 text-[var(--meta-divider)] hidden">/</div><a href=/my-blog-astro/archive/tag/Markdown/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Markdown tag">Markdown</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/Blogging/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Blogging tag">Blogging</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/SQL练习题/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the SQL练习题 tag">SQL练习题</a></div></div></div><div class="transition mb-3.5 pr-4 text-75" style=--coverWidth:28% data-astro-cid-iyiqi2so>一些练习sql语句的题目。</div><div class="transition text-sm flex dark:text-white/30 gap-4 text-black/30" style=--coverWidth:28% data-astro-cid-iyiqi2so><div style=--coverWidth:28% data-astro-cid-iyiqi2so>3812 字</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>|</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>19 分钟</div></div></div><a href=/my-blog-astro/posts/study/sql-demo1/ class="absolute rounded-xl !hidden active:bg-[var(--enter-btn-bg-active)] active:scale-95 bg-[var(--enter-btn-bg)] bottom-3 btn-regular hover:bg-[var(--enter-btn-bg-hover)] md:!flex right-3 top-3 w-[3.25rem]" aria-label=复杂SQL练习 data-astro-cid-iyiqi2so style=--coverWidth:28%><svg class="transition text-[var(--primary)] mx-auto text-4xl" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a></div><div class="transition border-dashed border-black/10 border-t-[1px] dark:border-white/[0.15] last:border-t-0 md:hidden mx-6" style=--coverWidth:28% data-astro-cid-iyiqi2so></div><div class="flex w-full card-base flex-col-reverse md:flex-col onload-animation overflow-hidden relative rounded-[var(--radius-large)]" style="animation-delay:calc(var(--content-delay) + 250ms);--coverWidth:28%" data-astro-cid-iyiqi2so><div class="w-full relative md:pl-9 md:pr-2 md:pt-7 pb-6 pl-6 pr-6 pt-6 md:w-[calc(100%_-_var(--coverWidth)_-_12px)]" style=--coverWidth:28% data-astro-cid-iyiqi2so><a href=/my-blog-astro/posts/guide/ class="transition font-bold before:absolute before:bg-[var(--primary)] before:rounded-md before:w-1 active:text-[var(--title-active)] before:h-5 before:hidden before:left-[18px] before:top-[35px] block dark:active:text-[var(--title-active)] dark:hover:text-[var(--primary)] group hover:text-[var(--primary)] mb-3 md:before:block text-3xl text-90 w-full" data-astro-cid-iyiqi2so style=--coverWidth:28%>Simple Guides <svg class="absolute text-[2rem] text-[var(--primary)] translate-y-0.5 inline md:hidden" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg> <svg class="transition text-[var(--primary)] -translate-x-1 absolute group-hover:opacity-100 group-hover:translate-x-0 hidden md:inline opacity-0 text-[2rem] translate-y-0.5" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a><div class="flex items-center dark:text-neutral-400 flex-wrap gap-4 gap-x-4 gap-y-2 mb-4 text-neutral-500"><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:calendar-today-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:calendar-today-outline-rounded></use></svg></div><span class="text-sm text-50 font-medium">2024-04-01</span></div><div class="flex items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:book-2-outline-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:book-2-outline-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><a href=/my-blog-astro/archive/category/Guides/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts in the Guides category">Guides</a></div></div><div class="md:flex hidden items-center"><div class=meta-icon><svg class=text-xl data-icon=material-symbols:tag-rounded height=1em viewBox="0 0 24 24" width=1em><use xlink:href=#ai:material-symbols:tag-rounded></use></svg></div><div class="flex items-center flex-row flex-nowrap"><div class="text-sm mx-1.5 text-[var(--meta-divider)] hidden">/</div><a href=/my-blog-astro/archive/tag/Blogging/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Blogging tag">Blogging</a><div class="text-sm mx-1.5 text-[var(--meta-divider)]">/</div><a href=/my-blog-astro/archive/tag/Customization/ class="transition text-sm text-50 dark:hover:text-[var(--primary)] font-medium hover:text-[var(--primary)] link-lg whitespace-nowrap" aria-label="View all posts with the Customization tag">Customization</a></div></div></div><div class="transition mb-3.5 pr-4 text-75" style=--coverWidth:28% data-astro-cid-iyiqi2so>How to use this blog template.</div><div class="transition text-sm flex dark:text-white/30 gap-4 text-black/30" style=--coverWidth:28% data-astro-cid-iyiqi2so><div style=--coverWidth:28% data-astro-cid-iyiqi2so>160 字</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>|</div><div style=--coverWidth:28% data-astro-cid-iyiqi2so>1 分钟</div></div></div><a href=/my-blog-astro/posts/guide/ class="relative overflow-hidden active:scale-95 group rounded-xl -mb-2 max-h-[20vh] md:absolute md:bottom-3 md:max-h-none md:mb-0 md:mt-0 md:mx-0 md:right-3 md:top-3 md:w-[var(--coverWidth)] mt-4 mx-4" aria-label="Simple Guides" data-astro-cid-iyiqi2so style=--coverWidth:28%><div class="transition absolute pointer-events-none group-active:bg-black/50 group-hover:bg-black/30 h-full w-full z-10" style=--coverWidth:28% data-astro-cid-iyiqi2so></div><div class="flex items-center justify-center absolute h-full pointer-events-none w-full z-20" style=--coverWidth:28% data-astro-cid-iyiqi2so><svg class="transition group-hover:scale-100 group-hover:opacity-100 opacity-0 text-5xl text-white scale-50" data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-iyiqi2so><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></div><div class="w-full relative overflow-hidden h-full"><div class="transition absolute pointer-events-none bg-opacity-50 dark:bg-black/10 inset-0"></div><img alt="Cover Image of the Post" class="w-full h-full object-cover" decoding=async height=1024 loading=lazy src=/my-blog-astro/_astro/cover.CgGywNHJ_QnlQm.webp style=object-position:center width=2048></div></a></div><div class="transition border-dashed border-black/10 border-t-[1px] dark:border-white/[0.15] last:border-t-0 md:hidden mx-6" style=--coverWidth:28% data-astro-cid-iyiqi2so></div></div><div class="flex flex-row gap-3 justify-center mx-auto onload-animation" style="animation-delay:calc(var(--content-delay) + 300ms)"><a href=/my-blog-astro/ class="rounded-lg h-11 w-11 btn-card disabled overflow-hidden text-[var(--primary)]"><svg class=text-[1.75rem] data-icon=material-symbols:chevron-left-rounded height=1em viewBox="0 0 24 24" width=1em><symbol id=ai:material-symbols:chevron-left-rounded><path d="m10.8 12l3.9 3.9q.275.275.275.7t-.275.7t-.7.275t-.7-.275l-4.6-4.6q-.15-.15-.212-.325T8.425 12t.063-.375t.212-.325l4.6-4.6q.275-.275.7-.275t.7.275t.275.7t-.275.7z" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:chevron-left-rounded></use></svg></a><div class="flex items-center flex-row bg-[var(--card-bg)] dark:text-neutral-300 font-bold rounded-lg text-neutral-700"><div class="flex items-center rounded-lg font-bold justify-center bg-[var(--primary)] dark:text-black/70 h-11 text-white w-11">1</div></div><a href=/my-blog-astro/ class="rounded-lg h-11 w-11 btn-card disabled overflow-hidden text-[var(--primary)]"><svg class=text-[1.75rem] data-icon=material-symbols:chevron-right-rounded height=1em viewBox="0 0 24 24" width=1em><symbol id=ai:material-symbols:chevron-right-rounded><path d="M12.6 12L8.7 8.1q-.275-.275-.275-.7t.275-.7t.7-.275t.7.275l4.6 4.6q.15.15.213.325t.062.375t-.062.375t-.213.325l-4.6 4.6q-.275.275-.7.275t-.7-.275t-.275-.7t.275-.7z" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:chevron-right-rounded></use></svg></a></div><div class="col-span-2 onload-animation footer hidden lg:block"><div class="transition border-dashed border-black/10 border-t dark:border-white/15 mx-32 my-10"></div><div class="transition flex items-center justify-center border-[oklch(85%_0.01_var(--hue))] border-dashed dark:border-white/15 flex-col mb-12 px-6 rounded-2xl"><div class="transition text-sm text-50 text-center">&copy; <span id=copyright-year>2025</span> Turnip1202. All Rights Reserved. / <a href=/my-blog-astro/rss.xml class="transition font-medium link text-[var(--primary)]" target=_blank>RSS</a> / <a href=/my-blog-astro/sitemap-index.xml class="transition font-medium link text-[var(--primary)]" target=_blank>Sitemap</a><br>Powered by <a href=https://astro.build class="transition font-medium link text-[var(--primary)]" target=_blank>Astro</a> & <a href=https://github.com/saicaca/fuwari class="transition font-medium link text-[var(--primary)]" target=_blank>Fuwari</a></div></div></div></div></main><div class="col-span-2 onload-animation footer block lg:hidden"><div class="transition border-dashed border-black/10 border-t dark:border-white/15 mx-32 my-10"></div><div class="transition flex items-center justify-center border-[oklch(85%_0.01_var(--hue))] border-dashed dark:border-white/15 flex-col mb-12 px-6 rounded-2xl"><div class="transition text-sm text-50 text-center">&copy; <span id=copyright-year>2025</span> Turnip1202. All Rights Reserved. / <a href=/my-blog-astro/rss.xml class="transition font-medium link text-[var(--primary)]" target=_blank>RSS</a> / <a href=/my-blog-astro/sitemap-index.xml class="transition font-medium link text-[var(--primary)]" target=_blank>Sitemap</a><br>Powered by <a href=https://astro.build class="transition font-medium link text-[var(--primary)]" target=_blank>Astro</a> & <a href=https://github.com/saicaca/fuwari class="transition font-medium link text-[var(--primary)]" target=_blank>Fuwari</a></div></div></div></div><div class="back-to-top-wrapper hidden lg:block" data-astro-cid-eymb5ayk><div class="transition flex items-center rounded-2xl back-to-top-btn hide overflow-hidden" id=back-to-top-btn data-astro-cid-eymb5ayk onclick=backToTop()><button class="btn-card h-[3.75rem] w-[3.75rem]" aria-label="Back to Top" data-astro-cid-eymb5ayk><svg class=mx-auto data-icon=material-symbols:keyboard-arrow-up-rounded height=1em viewBox="0 0 24 24" width=1em data-astro-cid-eymb5ayk><symbol id=ai:material-symbols:keyboard-arrow-up-rounded><path d="m12 10.8l-3.9 3.9q-.275.275-.7.275t-.7-.275t-.275-.7t.275-.7l4.6-4.6q.3-.3.7-.3t.7.3l4.6 4.6q.275.275.275.7t-.275.7t-.7.275t-.7-.275z" fill=currentColor /></symbol><use xlink:href=#ai:material-symbols:keyboard-arrow-up-rounded></use></svg></button></div></div><script>function backToTop(){window.scroll({top:0,behavior:"smooth"})}</script></div></div><div class="w-full absolute 2xl:block hidden z-0"><div class="relative mx-auto max-w-[var(--page-width)]"><div class="transition flex items-center absolute -right-[var(--toc-width)] hidden lg:block top-0 w-[var(--toc-width)]" id=toc-wrapper><div class="h-[calc(100vh_-_20rem)] fixed hide-scrollbar overflow-x-hidden overflow-y-scroll top-14 w-[var(--toc-width)]" id=toc-inner-wrapper><div class="w-full h-full transition-swup-fade" id=toc><div class="w-full h-8"></div><table-of-contents class=group><div class="absolute hidden -z-10 bg-[var(--toc-btn-hover)] border-2 border-[var(--toc-btn-hover)] border-dashed group-hover:bg-transparent group-hover:border-[var(--toc-btn-active)] left-0 right-0 rounded-xl transition-all" id=active-indicator></div></table-of-contents><div class="w-full h-8"></div></div></div></div><!-- #toc needs to exist for Swup to work normally --></div></div><div class="h-[300vh] hidden" style=--bannerOffset:15vh;--banner-height-home:65vh;--banner-height:35vh;--configHue:250;--page-width:75rem id=page-height-extend data-astro-cid-sckkx6r4></div></body></html>